Option Explicit 'Script written by'Script copyrighted by 'Script version martes, 11 de agosto de 2009 9:37:31 ' Procedimiento que imprime los dos puntos introducidos por el usuario ' por orden de mas cercano al origen. Sub Main() Dim punto1, punto2, d1, d2 punto1 = Rhino.GetPoint("Punto 1: ") punto2 = Rhino.GetPoint("Punto 2: ") d1 = (punto1(0)^2 + punto1(1)^2 + punto1(2)^2)^0.5 d2 = (punto2(0)^2 + punto2(1)^2 + punto2(2)^2)^0.5 If d1 > d2 Then Rhino.Print punto2(0) & ", " & punto2(1) & ", " & punto2(2) Rhino.Print punto1(0) & ", " & punto1(1) & ", " & punto1(2) Else Rhino.Print punto1(0) & ", " & punto1(1) & ", " & punto1(2) Rhino.Print punto2(0) & ", " & punto2(1) & ", " & punto2(2) End If End Sub ' Lo mismo con el anterior pero con las funciones de la libreria. Sub Main2() Dim punto1, punto2, d1, d2, puntoOrigen punto1 = Rhino.GetPoint("Punto 1: ") punto2 = Rhino.GetPoint("Punto 2: ") puntoOrigen = Array(0, 0, 0) d1 = Rhino.Distance(puntoOrigen, punto1) d2 = Rhino.Distance(puntoOrigen, punto2) If d1 > d2 Then Rhino.Print Rhino.Pt2Str(punto2) Rhino.Print Rhino.Pt2Str(punto1) Else Rhino.Print Rhino.Pt2Str(punto1) Rhino.Print Rhino.Pt2Str(punto2) End If End Sub ' Lo mismo que el anterior pero con 3 puntos. ' Además añade una polilinea que empezando en el origen pasa por ' los 3 puntos. Sub Main3() Dim punto1, punto2, punto3, auxPunto, d1, d2, d3, auxD, po punto1 = Rhino.GetPoint("Punto 1: ") punto2 = Rhino.GetPoint("Punto 2: ") punto3 = Rhino.GetPoint("Punto 3: ") po = Array(0, 0, 0) d1 = Rhino.Distance(po, punto1) d2 = Rhino.Distance(po, punto2) d3 = Rhino.Distance(po, punto3) If d3 < d2 Then ' Intercambiamos las distancias auxD = d3 d3 = d2 d2 = auxD ' Intercambiamos los puntos correspondientes auxPunto = punto3 punto3 = punto2 punto2 = auxPunto End If If d2 < d1 Then auxD = d2 d2 = d1 d1 = auxD auxPunto = punto2 punto2 = punto1 punto1 = auxPunto End If If d3 < d2 Then ' Intercambiamos las distancias auxD = d3 d3 = d2 d2 = auxD ' Intercambiamos los puntos correspondientes auxPunto = punto3 punto3 = punto2 punto2 = auxPunto End If Rhino.Print Rhino.pt2str(punto1) Rhino.Print Rhino.Pt2Str(punto2) Rhino.print Rhino.Pt2Str(punto3) Rhino.AddLine po, punto1 Rhino.AddLine punto1, punto2 Rhino.AddLine punto2, punto3 End Sub
Mas ejemplos de if - else. Taras siento el retraso, la próxima vez los colgaré al acabar la clase.