::Foro ARQ-SL:: ::Foro ARQ-SL::

Foro sobre Software Libre para arquitectos
login.php profile.php?mode=register faq.php memberlist.php search.php index.php






Aviso: La verdadera herramienta imprescindible para un arquitecto es y será siempre su intelecto. Bienvenido a Foro ARQ-SL Software Libre para Arquitectos.[Usuarios nuevos] [Noticias y Actualizaciones] [Buscar un programa]

Foros de discusión » Herramientas de diseño » [GUIA] Guía Básica de Scripting en OpenShapeFactory
Publicar nuevo tema  Responder al tema Ver tema anterior :: Ver tema siguiente 
[GUIA] Guía Básica de Scripting en OpenShapeFactory
MensajePublicado: Dom Jun 24, 2012 1:46 am Responder citando
Rafael
Site Admin
Registrado: 29 Ago 2007
Mensajes: 70




OPENSHAPEFACTORY Guia de Scripts en Español
OpenShapeFactory es un software paramétrico Open Source creado por Alex Peña.
OFFICIAL WEB SITE (para descargar el programa) http://code.google.com/p/openshapefactory/




Instalación: Software que solo corre sobre Windows por ahora. Para instalarlo descomprime el archivo rar en una carpeta con nombre sin espacios en la raíz de C:\
Luego ejecuta el archivo “occinstaller”. El programa inicia con doble click en el archivo “SFMQTGUI”.

La siguiente lista de scripts son una guía básica para crear figuras simples y progresivamente mas complejas usando el programa OpenShapeFactory. Simplemente copia, pega y modifica los scripts para visualizar las geometrías.

DEFINICIONES BÁSICAS
===============================================
//
Comenta una linea de código (la linea no se ejecuta, sirve para dejar comentarios o apagar temporalmente un comando)

p1=makepoint(0,0,0)
p1 es el nombre de una variable; makepoint es el comando crear un punto; (0,0,0) son las coordenadas x,y,z donde ejecutar la orden.

vis(p1)
vis es el comando para visualizar lo que previamente se ha creado; (p1) es el nombre de la variable a visualizar.

X=getval(0,0,0)
X es el nombre del slider; getval es el comando para crear el slider; (0,0,0) ubicación del slider, mínimo-valor, máximo-valor.

SCRIPTS
===============================================
PUNTOS

Código:
//Ejercicio: Dibujar un simple punto
p1= makepoint(0,0,0) //crea un punto
vis(p1) //visualizar el punto en la pantalla
//Nota: cambiando los valores de (0,0,0) se modifica la ubicación del punto


Código:
//Ejercicio: Dibujar un punto controlado por un slider
// Crear sliders x, y, z para cada eje.
x= getval(0,-10,100) //position 0, minval -10, maxval 100
y= getval(1,-10,100) // position 1, minval -10, maxval 100
z= getval(2,0,100) // position 2, minval -10, maxval 100
p1= makepoint(x,y,z) //crea un punto usando como coordenadas las variables previamente definidas para los sliders.
vis(p1) //visualiza el punto en la pantalla.
//Nota: cambiando los valores de minval y maxval en cada variable se modifica el rango máximo y mínimo de desplazamiento del punto.

===============================================
LINEAS

Código:

//Ejercicio: Crea una linea entre dos puntos
p1 = makepoint(0,0,0) // create a point
vis(p1) // showpoint on viewport

p2 = makepoint(0,30,0) // create a point
vis(p2) // showpoint on viewport

l1 = makelineptpt(p1,p2) // make a line between 2 points
vis(l1) //show the line in the viewport


Código:

//Ejercicio: Crea una linea entre dos puntos controlada por sliders
//Crea los sliders para p1 y p2 para los ejes x,y
x1= getval(0,-100,100)
y1= getval(1,-100,100)
x2= getval(2,-100,100)
y2= getval(3,-100,100)

p1 = makepoint(x1,y1,0) // create a point
vis(p1) // showpoint on viewport

p2 = makepoint(x2,y2,0) // create a point
vis(p2) // showpoint on viewport

l1 = makelineptpt(p1,p2) // make a line between 2 points
vis(l1) //show the line in the viewport


Código:
//Ejercicio: crear un B-Spline con 2 sliders de control
minval= 5
maxval=30
A=getval(0,minval,maxval)
B=getval(1,minval,maxval)

p1= makepoint(0,-A,0)
p2= makepoint(10,-B,30)
p3= makepoint(10,B,30)
p4= makepoint(0,A,0)
vis(p1)
vis(p2)
vis(p3)
vis(p4)

mypointlist= makepointlist()
mypointlist= addpointtolist(mypointlist,p1,p2,p3,p4)
mybspline= makebspline(mypointlist)
vis(mybspline)


Código:

//Ejercicio: crear un B-Spline con 4 puntos de control
minval= 10
maxval=30
A=getval(0,minval,maxval)
B=getval(1,0,maxval)
C=getval(2,0,maxval)

p1= makepoint(0,-A,0)
p2= makepoint(0,-10,B)
p3= makepoint(0,10,C)
p4= makepoint(0,A,0)
vis(p1)
vis(p2)
vis(p3)
vis(p4)

mypointlist= makepointlist()
mypointlist= addpointtolist(mypointlist,p1,p2,p3,p4)
mybspline= makebspline(mypointlist)
vis(mybspline)

===============================================
FIGURAS

Código:

//Ejercicio: crear un triángulo cuyos vértices son controlados por sliders

A= getval(0,0,30)
B= getval(1,0,30)
C= getval(2,-30,0)

p1= makepoint(0,A,0)
p2= makepoint(B,0,0)
p3= makepoint(C,0,0)

vis(p1)
vis(p2)
vis(p3)

l1= makelineptpt(p1,p2)
l2= makelineptpt(p2,p3)
l3= makelineptpt(p3,p1)
vis(l1)
vis(l2)
vis(l3)


Código:

//Ejercicio: crear un paralelogramo controlado por sliders.
A  =  getval(0,0,300)
B  =  getval(1,0,300)
C  =  getval(2,0,300)
D  =  getval(3,0,300)

p1  =  makepoint(A,0,0)
vis(p1)

p2  =  makepoint(B,0,0)
vis(p2)

p3  =  makepoint(100, C,0)
vis(p3)

p4  =  makepoint(0,D,0)
vis(p4)

l1  =  makelineptpt(p1,p2)
l2  =  makelineptpt(p2,p3)
l3  =  makelineptpt(p3,p4)
l4  =  makelineptpt(p4,p1)
vis(l1)
vis(l2)
vis(l3)
vis(l4)


Código:

//Ejercicio: crear un circulo cuyo radio es controlado por un slider
x = getval(0,1,200)
y = getval(1,1,200)
z = getval(2,1,200)
radius = getval(3,10,200)
p1 = makepoint(x,y,z) // create a point and update when slider moves
vis(p1) // showpoint on viewport

upvec = makevector(0,0,1)
c1 = makecircle(p1,upvec,radius)
vis(c1)

===============================================

SUPERFICIES

Código:

//Ejercicio: crear una superficie contenida entre dos lineas
p1=makepoint(0,0,0)
p2=makepoint(0,10,0)
l1=makelineptpt(p1,p2)
vis(l1)
vis(p1)
vis(p2)

p3=makepoint(20,0,0)
p4=makepoint(20,10,0)
l2=makelineptpt(p3,p4)
vis(l2)
vis(p3)
vis(p4)

list=makeshapelist()
list=addshapetolist(list,l1,l2)
loft = makeloft(list)

vis(loft)



Código:

//Ejercicio: crear una superficie contenida entre dos lineas controladas por sliders.
minval=0
maxval=10

Rl1=getval(0,0,maxval)
Rl2=getval(1,0,maxval)

p1=makepoint(0,0,Rl1)
p2=makepoint(0,10,-Rl1)
l1=makelineptpt(p1,p2)
vis(l1)
vis(p1)
vis(p2)

p3=makepoint(20,0,-Rl2)
p4=makepoint(20,10,Rl2)
l2=makelineptpt(p3,p4)
vis(l2)
vis(p3)
vis(p4)

list=makeshapelist()
list=addshapetolist(list,l1,l2)
loft = makeloft(list)

vis(loft)



Código:

//Ejercicio: crear una superficie que pasa por dos lineas.
p1=makepoint(0,0,0)
p2=makepoint(0,10,0)
l1=makelineptpt(p1,p2)
vis(l1)
vis(p1)
vis(p2)

p3=makepoint(20,0,0)
p4=makepoint(20,10,0)
l2=makelineptpt(p3,p4)
vis(l2)
vis(p3)
vis(p4)

list=makeshapelist()
list=addshapetolist(list,l1,l2)

surf=makecontrainedsrf(list)
vis(surf)


Código:

//Ejercicio: crear una superficie que pasa por dos lineas cuya rotación es controlada por un slider.
minval=0
maxval=10

Rl1=getval(0,0,maxval)
Rl2=getval(1,0,maxval)

p1=makepoint(0,0,Rl1)
p2=makepoint(0,10,-Rl1)
l1=makelineptpt(p1,p2)
vis(l1)
vis(p1)
vis(p2)

p3=makepoint(20,0,-Rl2)
p4=makepoint(20,10,Rl2)
l2=makelineptpt(p3,p4)
vis(l2)
vis(p3)
vis(p4)

list=makeshapelist()
list=addshapetolist(list,l1,l2)

surf=makecontrainedsrf(list)
vis(surf)



Código:

//Ejercicio: crear una superficie que pasa por dos lineas y un punto, controlando el punto con un slider
p1 = makepoint(-200,0,0)
p2 = makepoint(-50,100,0)
l1 = makelineptpt(p1,p2)
vis(l1)

p1 = makepoint(0,0,0)
p2 = makepoint(100,100,0)
l2 = makelineptpt(p1,p2)
vis(l2)

p3 = makepoint(-20,-10,10)
vis(p3)

p4 = makepoint(-20,60,-10)
vis(p4)

list = makeshapelist()
list = addshapetolist(list,l1,l2,p3,p4)

surf = makecontrainedsrf(list)
vis(surf)


Código:

//Ejercicio: crear una superficie que pasa por tres lineas de tres vértices, controladon los puntos con sliders
minval= 10
maxval=30

A=getval(0,minval,maxval)
B=getval(1,0,maxval)
C=getval(2,0,maxval)
A2=getval(3,minval,maxval)
B2=getval(4,0,maxval)
C2=getval(5,0,maxval)
A3=getval(6,minval,maxval)
B3=getval(7,0,maxval)
C3=getval(8,0,maxval)


p1= makepoint(0,-A,0)
p2= makepoint(0,-10,B)
p3= makepoint(0,10,C)
p4= makepoint(0,A,0)
vis(p1)
vis(p2)
vis(p3)
vis(p4)

p1b= makepoint(50,-A2,0)
p2b= makepoint(50,-10,B2)
p3b= makepoint(50,10,C2)
p4b= makepoint(50,A2,0)
vis(p1b)
vis(p2b)
vis(p3b)
vis(p4b)

p1c= makepoint(100,-A3,0)
p2c= makepoint(100,-10,B3)
p3c= makepoint(100,10,C3)
p4c= makepoint(100,A3,0)
vis(p1c)
vis(p2c)
vis(p3c)
vis(p4c)

makelineptpt1= makelineptpt(p1,p2)
makelineptpt1a= makelineptpt(p2,p3)
makelineptpt1b= makelineptpt(p3,p4)
vis(makelineptpt1)
vis(makelineptpt1a)
vis(makelineptpt1b)

makelineptpt2= makelineptpt(p1b,p2b)
makelineptpt2a= makelineptpt(p2b,p3b)
makelineptpt2b= makelineptpt(p3b,p4b)
vis(makelineptpt2)
vis(makelineptpt2a)
vis(makelineptpt2b)

makelineptpt3= makelineptpt(p1c,p2c)
makelineptpt3a= makelineptpt(p2c,p3c)
makelineptpt3b= makelineptpt(p3c,p4c)
vis(makelineptpt3)
vis(makelineptpt3a)
vis(makelineptpt3b)

list1=makeshapelist()
list1=addshapetolist(list1,makelineptpt1,makelineptpt2,makelineptpt3)
loft1 = makeloft(list1)
vis(loft1)

list2=makeshapelist()
list2=addshapetolist(list2,makelineptpt1a,makelineptpt2a,makelineptpt3a)
loft2 = makeloft(list2)
vis(loft2)

list3=makeshapelist()
list3=addshapetolist(list3,makelineptpt1b,makelineptpt2b,makelineptpt3b)
loft3 = makeloft(list3)
vis(loft3)


Código:

//Ejercicio: crear una superficie usando el comando "fill"
A= getval(0,0,30)
B= getval(1,0,30)
C= getval(2,-30,0)

p1= makepoint(0,A,0)
p2= makepoint(B,0,0)
p3= makepoint(C,0,0)

vis(p1)
vis(p2)
vis(p3)

l1= makelineptpt(p1,p2)
l2= makelineptpt(p2,p3)
l3= makelineptpt(p3,p1)
vis(l1)
vis(l2)
vis(l3)

list=makeshapelist()
list=addshapetolist(list,l1,l2,l3)
fill=makefillsrf(list)
vis(fill)


Código:

//Ejercicio: crear superficies usando comando "fill y funciones"
A= getval(0,0,30)
B= getval(1,0,30)
C= getval(2,-30,0)

p1= makepoint(0,A,0)
p2= makepoint(B,0,0)
p3= makepoint(C,0,0)

p4= makepoint(0,A,20)
p5= makepoint(B,0,20)
p6= makepoint(C,0,20)


vis(p1)
vis(p2)
vis(p3)

filltriangle(p1,p2,p3)
filltriangle(p4,p5,p6)
//fillquad(p1,p2,p5,p6)



function filltriangle(v1,v2,v3)
{
l1= makelineptpt(v1,v2)
l2= makelineptpt(v2,v3)
l3= makelineptpt(v3,v1)
vis(l1)
vis(l2)
vis(l3)

list=makeshapelist()
list=addshapetolist(list,l1,l2,l3)
fill=makefillsrf(list)
vis(fill)
}

function fillquad(v1,v2,v3,v4)
{
l1= makelineptpt(v1,v2)
l2= makelineptpt(v2,v3)
l3= makelineptpt(v3,v4)
l4= makelineptpt(v4,v1)
vis(l1)
vis(l2)
vis(l3)
vis(l4)

list=makeshapelist()
list=addshapetolist(list,l1,l2,l3,l4)
fill=makefillsrf(list)
vis(fill)
}



Código:

//Ejercicio: crear una superficie mas grande que pasa por tres lineas de tres vértices, controladon los puntos con sliders y visualizando la curvatura de las superficies
minval= 10
maxval=30
scala=100

A=getval(0,minval,maxval)*scala
B=getval(1,0,maxval)*scala
C=getval(2,0,maxval)*scala
A2=getval(3,minval,maxval)*scala
B2=getval(4,0,maxval)*scala
C2=getval(5,0,maxval)*scala
A3=getval(6,minval,maxval)*scala
B3=getval(7,0,maxval)*scala
C3=getval(8,0,maxval)*scala

separacion=50*scala
p1= makepoint(0,-A,0)
p2= makepoint(0,-separacion/5,B)
p3= makepoint(0,separacion/5,C)
p4= makepoint(0,A,0)
vis(p1)
vis(p2)
vis(p3)
vis(p4)

p1b= makepoint(separacion,-A2,0)
p2b= makepoint(separacion,-separacion/5,B2)
p3b= makepoint(separacion,separacion/5,C2)
p4b= makepoint(separacion,A2,0)
vis(p1b)
vis(p2b)
vis(p3b)
vis(p4b)

p1c= makepoint(separacion*2,-A3,0)
p2c= makepoint(separacion*2,-separacion/5,B3)
p3c= makepoint(separacion*2,separacion/5,C3)
p4c= makepoint(separacion*2,A3,0)
vis(p1c)
vis(p2c)
vis(p3c)
vis(p4c)

makelineptpt1= makelineptpt(p1,p2)
makelineptpt1a= makelineptpt(p2,p3)
makelineptpt1b= makelineptpt(p3,p4)
vis(makelineptpt1)
vis(makelineptpt1a)
vis(makelineptpt1b)

makelineptpt2= makelineptpt(p1b,p2b)
makelineptpt2a= makelineptpt(p2b,p3b)
makelineptpt2b= makelineptpt(p3b,p4b)
vis(makelineptpt2)
vis(makelineptpt2a)
vis(makelineptpt2b)

makelineptpt3= makelineptpt(p1c,p2c)
makelineptpt3a= makelineptpt(p2c,p3c)
makelineptpt3b= makelineptpt(p3c,p4c)
vis(makelineptpt3)
vis(makelineptpt3a)
vis(makelineptpt3b)

list1=makeshapelist()
list1=addshapetolist(list1,makelineptpt1,makelineptpt2,makelineptpt3)
loft1 = makeloft(list1)
//vis(loft1)

list2=makeshapelist()
list2=addshapetolist(list2,makelineptpt1a,makelineptpt2a,makelineptpt3a)
loft2 = makeloft(list2)
//vis(loft2)

list3=makeshapelist()
list3=addshapetolist(list3,makelineptpt1b,makelineptpt2b,makelineptpt3b)
loft3 = makeloft(list3)
//vis(loft3)

viscurvature(loft1,0.001,true)
viscurvature(loft2,0.001,true)
viscurvature(loft3,0.001,true)


Código:

//Ejercicio: crear una superficie que pasa por  una B-Spline con 2 sliders de control
minval= 5
maxval=300

A=getval(0,minval,maxval)
B=getval(1,minval,maxval)

list = makeshapelist()

for (i=0;i<10;i++)

{
c1 = herradura(A * 0.1 * i,B * i / 20, 60 * i,-3 * i)
vis(c1)

list = addshapetolist(list,c1)

}

loft = makeloft(list)
//viscurvature(loft,10,true)
vis(loft)

function herradura(A,B,C,D)

{

p1= makepoint(D + 0,-A,0)
p2= makepoint(C,-B,D*D)
p3= makepoint(C,B,D*D)
p4= makepoint(D + 0,A,0)

vis(p1)
vis(p2)
vis(p3)
vis(p4)

mypointlist= makepointlist()
mypointlist= addpointtolist(mypointlist,p1)
mypointlist= addpointtolist(mypointlist,p2)
mypointlist= addpointtolist(mypointlist,p3)
mypointlist= addpointtolist(mypointlist,p4)
mybspline= makebspline(mypointlist)

return mybspline

}


Código:

//Ejercicio: crear una superficie con 2 B-Spline de 4 puntos de control
minval= 10
maxval=30
A=getval(0,minval,maxval)
B=getval(1,0,maxval)
C=getval(2,0,maxval)
D=getval(3,minval,maxval)
E=getval(4,0,maxval)
F=getval(5,0,maxval)

p1= makepoint(0,-A,0)
p2= makepoint(0,-10,B)
p3= makepoint(0,10,C)
p4= makepoint(0,A,0)
vis(p1)
vis(p2)
vis(p3)
vis(p4)

p1b= makepoint(50,-D,0)
p2b= makepoint(50,-10,E)
p3b= makepoint(50,10,F)
p4b= makepoint(50,D,0)
vis(p1b)
vis(p2b)
vis(p3b)
vis(p4b)

mypointlist1= makepointlist()
mypointlist1= addpointtolist(mypointlist1,p1,p2,p3,p4)
mybspline1= makebspline(mypointlist1)
vis(mybspline1)

mypointlist2= makepointlist()
mypointlist2= addpointtolist(mypointlist2,p1b,p2b,p3b,p4b)
mybspline2= makebspline(mypointlist2)
vis(mybspline2)

list=makeshapelist()
list=addshapetolist(list,mybspline1,mybspline2)
loft = makeloft(list)

vis(loft)


Código:

//Ejercicio: crear una superficie con 3 B-Spline de 4 puntos de control
minval= 10
maxval=30

A=getval(0,minval,maxval)
B=getval(1,0,maxval)
C=getval(2,0,maxval)
A2=getval(3,minval,maxval)
B2=getval(4,0,maxval)
C2=getval(5,0,maxval)
A3=getval(6,minval,maxval)
B3=getval(7,0,maxval)
C3=getval(8,0,maxval)


p1= makepoint(0,-A,0)
p2= makepoint(0,-10,B)
p3= makepoint(0,10,C)
p4= makepoint(0,A,0)
vis(p1)
vis(p2)
vis(p3)
vis(p4)

p1b= makepoint(50,-A2,0)
p2b= makepoint(50,-10,B2)
p3b= makepoint(50,10,C2)
p4b= makepoint(50,A2,0)
vis(p1b)
vis(p2b)
vis(p3b)
vis(p4b)

p1c= makepoint(100,-A3,0)
p2c= makepoint(100,-10,B3)
p3c= makepoint(100,10,C3)
p4c= makepoint(100,A3,0)
vis(p1c)
vis(p2c)
vis(p3c)
vis(p4c)

mypointlist1= makepointlist()
mypointlist1= addpointtolist(mypointlist1,p1,p2,p3,p4)
mybspline1= makebspline(mypointlist1)
vis(mybspline1)

mypointlist2= makepointlist()
mypointlist2= addpointtolist(mypointlist2,p1b,p2b,p3b,p4b)
mybspline2= makebspline(mypointlist2)
vis(mybspline2)

mypointlist3= makepointlist()
mypointlist3= addpointtolist(mypointlist3,p1c,p2c,p3c,p4c)
mybspline3= makebspline(mypointlist3)
vis(mybspline3)

list=makeshapelist()
list=addshapetolist(list,mybspline1,mybspline2,mybspline3)
loft = makeloft(list)
vis(loft)


Código:

//Ejercicio: crear una superficie que pasa por un círculo y un punto
x = getval(0,1,200,"blue")
y = getval(1,1,200,"yellow")
z = getval(2,1,200, "white")
radius = getval(3,10,200,"green")
hight= getval(4,0,100,"cyan")

p1 = makepoint(x,y,z)
vis(p1)

upvec = makevector(0,0,1)
c1 = makecircle(p1,upvec,radius)
vis(c1)

p2=makepoint(x,y,hight)
vis(p2)

list = makeshapelist()
list = addshapetolist(list,c1,p2)

surf = makecontrainedsrf(list)
vis(surf)

===============================================
VOLÚMENES

Código:

//Ejercicio: crear un prisma triangular controlado por sliders
A= getval(0,0,30)
B= getval(1,0,30)
H= getval(2,0,100)

p1= makepoint(0,A,-H)
p2= makepoint(B,0,-H)
p3= makepoint(-B,0,-H)

//vis(p1)
//vis(p2)
//vis(p3)

l1= makelineptpt(p1,p2)
l2= makelineptpt(p2,p3)
l3= makelineptpt(p3,p1)
vis(l1)
vis(l2)
vis(l3)

p4= makepoint(0,A,H)
p5= makepoint(B,0,H)
p6= makepoint(-B,0,H)

//vis(p4)
//vis(p5)
//vis(p6)

l4= makelineptpt(p4,p5)
l5= makelineptpt(p5,p6)
l6= makelineptpt(p6,p4)
vis(l4)
vis(l5)
vis(l6)

list= makeshapelist()

list1= addshapetolist(list,l1,l4)
loft1= makeloft(list1)
vis(loft1)

list2= addshapetolist(list,l2,l5)
loft2= makeloft(list2)
vis(loft2)

list3= addshapetolist(list,l3,l6)
loft3= makeloft(list3)
vis(loft3)


Código:

//Ejercicio: crear un cilindro abierto
p1 = makepoint(0,0,0)
p2 = makepoint(0,0,50)
//vis(p1)
//vis(p2)

vec= makevector(0,0,1)
c1 = makecircle(p1,vec,20)
c2= makecircle(p2,vec,20)
vis(c1)
vis(c2)

list= makeshapelist()
list= addshapetolist(list,c1,c2)
loft= makeloft(list)
vis(loft)


Código:

//Ejercicio: crear una transicion de cono a cilindro controlado por sliders.
minval= 0
maxval= 20
R1= getval(0,minval,maxval)
R2= getval(1,minval,maxval)

p1 = makepoint(0,0,0)
p2 = makepoint(0,0,50)
//vis(p1)
//vis(p2)

vec= makevector(0,0,1)
c1 = makecircle(p1,vec,R1)
c2= makecircle(p2,vec,R2)
vis(c1)
vis(c2)

list= makeshapelist()
list= addshapetolist(list,c1,c2)
loft= makeloft(list)
vis(loft)


Código:

//Ejercicio: crear un cilindro con varios puntos de control
minval = 10
maxval = 100

radio = getval(0,minval,maxval)
desplazamiento = getval(0,0,maxval)
altura = getval(0,minval,maxval)
tapa = getval(0,-maxval,maxval)
angulo= getval(0,-45,45)

p1 = makepoint(0,0,0)
p2 = makepoint(desplazamiento,0,altura/2)
p3 = makepoint(0,0,altura)
p4 = makepoint(0,0,altura+tapa)

arriba = makevector(0,0,1)
vectory= makevector(0,1,0)


c1 = makecircle(p1,arriba,radio)
c2= makecircle(p2,arriba,radio)
c3 = makecircle(p3,arriba,radio)
c3_rotado = makerotate(c3,p3,vectory,angulo)
c4 = makecircle(p4,arriba,radio/4)

vis(c1)
vis(c2)
vis(c3)

lista = makeshapelist()
lista = addshapetolist(lista,c1,c2,c3_rotado,c4)
loft = makeloft(lista)
vis(loft)

//panelize(loft,40,30,mypanel)


function  mypanel(p1,p2,p3,p4)
{

vis(p1)
vis(p3)
//vis(p2)
diag1  =  makelineptpt(p1,p3)
diag2  =  makelineptpt(p2,p4)
midp1  =  makepointoncurve(diag1,0.5)
vis(midp1)
vis(diag1)
vis(diag2)
}


Código:

//Ejercicio: crear un pabellon con un techo parametrico controlado por sliders.
minval= 25
maxval=50

A=getval(0,minval,maxval)
B=getval(1,0,maxval)
C=getval(2,0,maxval)
D=getval(3,0,maxval)
A2=getval(4,minval,maxval)
B2=getval(5,0,maxval)
C2=getval(6,0,maxval)
D2=getval(7,0,maxval)
A3=getval(8,minval,maxval)
B3=getval(9,0,maxval)
C3=getval(10,0,maxval)
D3=getval(11,0,maxval)

p01=makepoint(0,-50,0)
p02=makepoint(100,-50,0)
p03=makepoint(100,50,0)
p04=makepoint(0,50,0)

lin1=makelineptpt(p01,p02)
lin2=makelineptpt(p02,p03)
lin3=makelineptpt(p03,p04)
lin4=makelineptpt(p01,p04)

vis(lin1)
vis(lin2)
vis(lin3)
vis(lin4)

p1= makepoint(0,-A,D)
p2= makepoint(0,-15.3,B+D)
p3= makepoint(0,15.3,C+D)
p4= makepoint(0,A,D)
vis(p1)
vis(p2)
vis(p3)
vis(p4)

p1b= makepoint(50,-A2,D2)
p2b= makepoint(50,-15.3,B2+D2)
p3b= makepoint(50,15.3,C2+D2)
p4b= makepoint(50,A2,D2)
vis(p1b)
vis(p2b)
vis(p3b)
vis(p4b)

p1c= makepoint(100,-A3,D3)
p2c= makepoint(100,-15.3,B3+D3)
p3c= makepoint(100,15.3,C3+D3)
p4c= makepoint(100,A3,D3)
vis(p1c)
vis(p2c)
vis(p3c)
vis(p4c)

mypointlist1= makepointlist()
mypointlist1= addpointtolist(mypointlist1,p1,p2,p3,p4)
mybspline1= makebspline(mypointlist1)
vis(mybspline1)

mypointlist2= makepointlist()
mypointlist2= addpointtolist(mypointlist2,p1b,p2b,p3b,p4b)
mybspline2= makebspline(mypointlist2)
vis(mybspline2)

mypointlist3= makepointlist()
mypointlist3= addpointtolist(mypointlist3,p1c,p2c,p3c,p4c)
mybspline3= makebspline(mypointlist3)
vis(mybspline3)

list=makeshapelist()
list=addshapetolist(list,mybspline1,mybspline2,mybspline3)
loft = makeloft(list)
vis(loft)

list1=makeshapelist()
list1=addshapetolist(list1,mybspline1,lin4)
loft1= makeloft(list1)
vis(loft1)

list2=makeshapelist()
list2=addshapetolist(list2,mybspline3,lin2)
loft2= makeloft(list2)
vis(loft2)

list3=makeshapelist()
list3=addshapetolist(list3,lin4,lin2)
loft3= makeloft(list3)
vis(loft3)

mypointlist1a= makepointlist()
mypointlist1a= addpointtolist(mypointlist1a,p1,p1b,p1c)
mybspline1a= makebspline(mypointlist1a)
//vis(mybspline1a)

list4=makeshapelist()
list4=addshapetolist(list4,lin1,mybspline1a)
loft4= makeloft(list4)
vis(loft4)

mypointlist1b= makepointlist()
mypointlist1b= addpointtolist(mypointlist1b,p4c,p4b,p4)
mybspline1b= makebspline(mypointlist1b)
//vis(mybspline1b)

list5=makeshapelist()
list5=addshapetolist(list5,mybspline1b,lin3)
loft5= makeloft(list5)
vis(loft5)


_________________
"Hay que ser absolutamente moderno".
Arthur Rimbaud
---------------------------------------------
Mi blog: http://www.bitacoravirtual.cl
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor
[GUIA] Guía Básica de Scripting en OpenShapeFactory
Foros de discusión » Herramientas de diseño

Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Todas las horas son GMT - 4 Horas  
Página 1 de 1  

  
  
 Publicar nuevo tema  Responder al tema  



Mapa del sitio - Powered by phpBB © 2001-2004 phpBB Group
Designed for Trushkin.net | Themes Database

Crear un foro | foros de Literatura & Poesía | Hosting gratis | soporte foros | Contactar | Denunciar un abuso | FAQ | Foro ejemplo

Para hosting especialidado en foros phpbb ssd en Desafiohosting.com