Categories
Cursos

Recursos para Rhinoscript y Grasshopper

Hola a todos,
os recordamos que el próximo martes comenzamos de nuevo las clases, con el segmento del curso dedicado a grasshopper y rhinoscript.
A continuación os dejamos los enlaces a unos cuantos recursos que os podrán ser de utilidad:
De rhinoscript, os recomendamos bajar el manual rhinoscript 101, creado por David Rutten:

http://en.wiki.mcneel.com/default.aspx/McNeel/RhinoScript101.html

Y de grasshopper, os dejamos el enlace al “grasshopper primer” escrito por Andrew Payne de Lift architects (http://www.liftarchitects.com) y traducido al español por Francisco Calvo y Katherine Cáceres de Tectónicas Digitales (http://www.tectonicasdigitales.com):

http://www.tectonicasdigitales.com/?p=54

Os recordamos además que en el post anterior tenéis los enlaces al software que utilizaremos en el curso. Esperamos que al comienzo de las clases ya lo tengáis todos instalado y funcionando sin problemas, para no perder tiempo con eso. Si alguno tenéis algún problema con el mismo, estaremos en el {LAC} el mismo martes desde las 16:00 hasta el comienzo de la clase, para ayudaros.

Os esperamos el martes, donde presentaremos esta parte del curso y Miguel Mesa comenzará a introducirnos en el mundo del rhinoscript.
¡Nos vemos!

Categories
Cursos

CECLEC – Inicio de las clases de Grasshopper / Rhinoscript

Hola a todos,

El próximo día 2 de febrero, comenzamos, en el horario habitual, el segmento del ceclec dedicado a grasshopper & rhinoscript.

Para esta parte del curso, necesitaremos tener instalado en nuestros ordenadores, el Rhino 4.0; el plugin Grasshopper; el plugin Monkey para editar rhinoscript; así como la última versión de Rhinoscript.

Para aquellos que no dispongais del software original, podeis descargaros desde la página oficial, la versión de evaluación de Rhino 4.0 SR6:

http://download.rhino3d.com/eval/?p=25

En el taller utilizaremos la última versión del Grasshopper, la 0.6.0059:

http://download.rhino3d.com/download_rel.asp?rel=566

Así mismo, os recomendamos que actualiceis una vez instalado el rhino, la versión de rhinoscript a la última:

http://download.rhino3d.com/download.asp?id=rhinoscript

Atención, para instalar rhinoscrpit, seguid las instrucciones de la página siguiente, prestando atención especial a lo marcado en el enlace rojo al final de la siguiente página, para instalar las últimas Runtimes de Microsoft:

Notas de la actualización de Rhinoscript

Por último, para la edición de rhinoscript, os recomendamos instalar el Monkey:

Notas de Monkey

Descargar Monkey

En nuestro próximo post, os indicaremos una serie de recursos y enlaces en las que nos apoyaremos para dar las clases, para que podais echarles un vistazo antes del comienzo de las mismas.

Por último, os recordamos que aunque en principio no es necesario dominar Rhino para lo que vamos a hacer, algunas nociones sí vendría bien que tuviéseis (dibujar líneas, superficies, polisuperficies, mallas, etc… lo básico, vamos), así que si podéis echarle un vistazo aquellos que no lo hayáis usado nunca antes del comienzo de las clases, mejor. No tengáis miedo, es un programa muy fácil de manejar, y de rápido aprendizaje.

Categories
Cursos

SunSurfaceSplit

 

Os subimos el script para utilizar la inclinación del sol como parámetro que explicamos en la última clase

 

 

‘Script written by Miguel Mesa

‘Script copyrighted by {LAC}

‘Script version martes, 26 de agosto de 2008 3:18:07

 

Call SunSurfaceSplit()

Sub SunSurfaceSplit()

Dim strSurfaceID : strSurfaceID = Rhino.GetObject(“Selecciona una Superficie”, 8, True, True)

Dim strDirSolID: strDirSolID = Rhino.GetObject(“Selecciona Dirección del Sol”, 4, True, True)

If IsNull (strSurfaceID) Then Exit Sub

If IsNull (strDirSolID) Then Exit Sub

Dim intCount1 : intCount1 = Rhino.GetInteger(“¿Número de Frames en u?”, 10, 2, 2000)

If IsNull(inCount) Then Exit Sub

Dim intCount2 : intCount2 = Rhino.GetInteger(“¿Número de Frames en v?”, 10, 2, 2000)

Dim uDomain : uDomain = Rhino.SurfaceDomain(strSurfaceID, 0)

Dim vDomain : vDomain = Rhino.SurfaceDomain(strSurfaceID, 1)

Dim uStep : uStep = (uDomain(1) – uDomain(0))/intCount1

Dim vStep : vStep = (vDomain(1) – vDomain(0))/intCount2

Dim u, v

Dim pt

Dim srfFrame

Call Rhino.EnableRedraw(False)

For u = uDomain(0) To uDomain(1) Step uStep

For v = vDomain(0) To vDomain(1) Step vStep

pt = Rhino.EvaluateSurface(strSurfaceID, Array(u, v))

If Rhino.Distance(pt, Rhino.BrepClosestPoint(strSurfaceID, pt)(0)) < 0.1 Then

srfFrame = Rhino.SurfaceFrame(strSurfaceID, Array(u, v))

Dim VectorPerp : VectorPerp = Rhino.SurfaceNormal(strSurfaceID, Array(u, v))

VectorPerp = Rhino.VectorScale(VectorPerp, 10)

Dim ExtrudePath : ExtrudePath = Rhino.AddLine(pt,Rhino.VectorAdd(pt,VectorPerp))

Dim A : A = Rhino.CurveStartPoint(strDirSolID)

Dim B : B = Rhino.CurveEndPoint(strDirSolID)

Dim C : C = Pt

Dim D : D = Rhino.CurveEndPoint(ExtrudePath)

‘Dim VSol : VSol = Rhino.VectorCreate(A, B)

Dim dblAngulo : dblAngulo = Rhino.Angle2(array(A,B), array(C,D))

 

 

Dim Circle : Circle = Rhino.AddCircle(srfFrame,0.01*dblAngulo(0))

Dim Cilindro : Cilindro = Rhino.ExtrudeCurve(Circle,ExtrudePath)

Dim CilindroMoved : CilindroMoved = Rhino.MoveObject(Cilindro, pt, Rhino.VectorSubtract(pt, Rhino.VectorDivide(VectorPerp, 2)))

 

Dim SplitBrep : SplitBrep = Rhino.SplitBrep(strSurfaceID, CilindroMoved, True)

If Not IsNull (SplitBrep(0)) Then

strSurfaceID = SplitBrep(0)

Call Rhino.DeleteObject(SplitBrep(1))

End If

Call Rhino.DeleteObject(CilindroMoved)

Call Rhino.DeleteObject(Circle)

Call Rhino.DeleteObject(ExtrudePath)

End If

Next

Next

Call Rhino.EnableRedraw(True)

End Sub

Categories
Cursos

Suavizar políneas

Este es el Script para suavizar polilíneas:

Option Explicit
‘Script para suavizar polilíneas y hacer un offset de las mismas
Call SuavizarPolilineas()
Sub SuavizarPolilineas()
Dim arrCrvs,strCrv, arrPoints,arrPoint
Dim K,i,arrNPt,hh,kk, Offset, Degree
arrCrvs = Rhino.GetObjects(“Select curves”, 4)
Offset = Rhino.GetReal(“Offset?”)
Degree = Rhino.GetReal(“Degree?”,3,1,100)
If IsNull(arrCrvs) Then Exit Sub
ReDim arrCC(UBound(arrCrvs))
hh=0
For Each strCrv In arrCrvs
If Rhino.IsPolyline(strCrv) Then
arrPoints = Rhino.PolylineVertices(strCrv)
If IsArray(arrPoints) Then
k=UBound(arrPoints)
kk=(k+1)*2-2
ReDim arrNPt(kk)
Dim nn : nn=0
For i=1 To kk Step 2
arrNPt(i) = Array((arrPoints(nn)(0)+arrPoints(nn+1)(0))/2, (arrPoints(nn)(1)+arrPoints(nn+1)(1))/2, (arrPoints(nn)(2)+arrPoints(nn+1)(2))/2 )
nn=nn+1
Next
nn=0
For i=0 To kk Step 2
arrNPt(i) = arrPoints(nn)
nn=nn+1
Next
arrCC(hh) = Rhino.AddCurve (arrNPt ,Degree)
Dim arrCentro : arrCentro = Rhino.CurveAreaCentroid(arrCC(hh))
Call Rhino.OffsetCurve(arrCC(hh), arrCentro(0), Offset)
hh=hh+1
End If
End If
Next

Rhino.SelectObjects arrCC

Rhino.DeleteObjects arrCC

Rhino.DeleteObjects arrCrvs

End Sub

Categories
Cursos

Descargas para la clase del 2008.11.17

Para la clase de hoy es imprescindible que os bajéis y os instaléis estos dos plugins.

Grasshopper (http://grasshopper.rhino3d.com/)

y Point Set Reconstruction (http://en.wiki.mcneel.com/default.aspx/McNeel/PointsetReconstruction.html)

Además, os recomendamos una página interesante con bastantes ejemplos

http://rhinoscriptingresources.blogspot.com/

Categories
Cursos Foro

Ejercicio 2008.11.11 – Unir los puntos

Una posible solución al ejercicio que se planteó al final de la clase del pasado día 11:

Option Explicit

Dim arrPuntos
Dim n
Call Main()

Sub Main()
arrPuntos=Rhino.GetPointCoordinates (“seleccionar los puntos”)
n=UBound(arrPuntos)+1
Rhino.Print(n & ” puntos seleccionados”)
If IsArray(arrPuntos) Then
Enlazar()
End If
End Sub

Function Enlazar()
Dim i,j
For i=0 To UBound(arrPuntos)
For j=0 To UBound(arrPuntos)
If i<>j Then
If Rhino.Distance(arrPuntos(i),arrPuntos(j))<100 Then
Rhino.addline arrPuntos(i),arrPuntos(j)

End If
End If
Next
Next
End Function