Dim srf Dim srf2 Dim uMain Dim uDomain Dim uParam Dim vParam Dim uMain2 Dim uDomain2 Dim uParam2 Dim vParam2 Dim i Dim j Dim point dim point2 dim esquina1 dim esquina2 dim esquina3 dim esquina4 dim esquina12 dim esquina22 dim esquina32 dim esquina42 dim ellipse dim ellipse2 dim linea dim puntito dim puntomedio dim linea2 dim puntito2 dim puntomedio2 dim linea3 dim puntito3 dim puntomedio3 dim linea4 dim puntito4 dim puntomedio4 dim circulito dim arrpoint dim pelota dim radio Dim uSecciones Dim vSecciones uSecciones = 30 vSecciones = uSecciones/2 redim colec2d (uSecciones,vSecciones) 'get a surface srf = Rhino.GetObject("seleccione surface", 8) 'get the u and v Domain uDomain = Rhino.SurfaceDomain(srf,0) vDomain = Rhino.SurfaceDomain(srf,1) 'loop through the surface for i = 0 to uSecciones for j = 0 to vSecciones 'calculate the uParam 'uparam = uMin +(uMax-UMin)/secciones uParam = uDomain(0) + i*(uDomain(1)-uDomain(0))/ uSecciones vParam = vDomain(0) + j*(vDomain(1)-vDomain(0))/ vSecciones 'get the point array from the surface point = Rhino.EvaluateSurface(srf, array (uParam, vParam)) colec2d(i,j) = point next next 'construccion de una surface entre 4 puntos obtenidos de la surface principal 'Rhino.AddSrfPt(array(esquina1, esquina2, esquina3, esquina4)) 'ciclos throuhg colec2d for i = 0 to (uSecciones-1) for j = 0 to (vSecciones-1) 'draw point in Rhino 'Rhino.addpoint(colec2d(i,j)) esquina1 = colec2d(i,j) esquina2 = colec2d(i+1,j) esquina3 = colec2d(i+1,j+1) esquina4 = colec2d(i,j+1) 'llama funcion q encuentra centro de la elipse 'call a function that takes 4 points 'ellipse = mifunction2(esquina1, esquina2, esquina3, esquina4) linea = Rhino.AddLine(esquina1, esquina3) puntomedio = Rhino.CurveMidPoint(linea) 'puntito = Rhino.AddPoint(puntomedio) 'linea2 = Rhino.AddLine(esquina22, esquina42) 'puntomedio2 = Rhino.CurveMidPoint(linea2) 'puntito2 = Rhino.AddPoint(puntomedio2) 'linea3 = Rhino.AddLine(puntomedio, puntomedio2) 'puntomedio3 = Rhino.CurveMidPoint(linea3) 'puntito3 = Rhino.AddPoint(puntomedio3) 'arrpoint = puntomedio3 'circulito = Rhino.AddCircle (puntomedio3, 1, puntomedio) 'linea4 = Rhino.AddLine(esquina4, esquina42) 'puntomedio4 = Rhino.CurveMidPoint(linea4) 'puntito4 = Rhino.AddPoint(puntomedio4) 'call Rhino.AddLoftSrf(Array(ellipse2, circulito, ellipse)) radio = (Rhino.CurveLength(linea))/4 pelota = Rhino.AddSphere(puntomedio, radio) 'pelota = Rhino.AddSphere(puntomedio2, radio) next next function mifunction(pt1, pt2, pt3, pt4) 'cross truss mifunction = Rhino.AddPolyline(Array(pt1, pt2, pt3, pt4,pt1)) end function function mifunction2(pt1, pt2, pt3, pt4) 'ellipse mifunction2 = Rhino.AddCurve(Array(pt1, pt2, pt3, pt4,pt1), 3) 'call Rhino.AddCurve(pt2,pt4) 'call Rhino.AddCurve(pt4,pt1) 'strCurve = Rhino.AddCircle(Array(ellipse)) 'strPath = Rhino.AddLine(Array(5,0,0), Array(10,0,10)) 'Rhino.ExtrudeCurve strCurve, strPath end function function xelofunction(pt1, pt2, pt3, pt4) xelofunction = Rhino.AddCurve(Array(pt1, pt2, pt3, pt4,pt1), 2) end function 'function diametro(pt1, pt2, pt3, pt4) 'xelofunction = Rhino.AddCurve(Array(pt1, pt2, pt3, pt4,pt1), 2) 'end function